#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<unistd.h>
#include<sys/types.h>
//int g_unval;
int g_val = 100;


int main(int argc,char *argv[],char *envp[])
{
  pid_t id=fork();
  if(id==0)
  {
    g_val=200;
    printf("child pid:%d,ppid:%d,g_val:%d,&g_val:%p\n",getpid(),getppid(),g_val,&g_val);
  }
  else{
    sleep(2);
    printf("father pid:%d,ppid:%d,g_val:%d,&g_val:%p\n",getpid(),getppid(),g_val,&g_val);
  }
  sleep(1);


//  printf("code addr:%p\n",main);
//  char *str="hello world";
//  printf("read only addr:%p\n",str);
//  printf("init addr:%p\n",&g_val);
//  printf("uninit addr:%p\n",&g_unval);
//
//  int *p = malloc(10);
//  printf("heap addr:%p\n",p);
//  printf("stack addr:%p\n",&p);
//  printf("stack addr:%p\n",&str);
//  for(int i=0;i<argc;i++)
//  {
//    printf("argv addr:%p\n",argv[i]);
//  }
//  int i=0;
//  while(envp[i])
//  {
//    printf("envp addr:%p\n",envp[i]);
//    i++;
//  }
  return 0;
}
